AutoFactoryFromCreatedWithCreator{ }
create{
  ParameterValue[] createdTypeConstructorParameterValues=converter.convert();
  InjectionTarget<T> injectionTarget=createInjectionTargetWithoutValidation();
  return new AutoFactoryBean<T>(beanManager,factoryClass,new CreatedTypeData<T>(createdTypeConstructorParameterValues,soleCreatedTypeConstructor,injectionTarget,constructorInjection));
}
createInjectionTargetWithoutValidation{
  BeanManagerImpl bmi=(BeanManagerImpl)beanManager;
}
checkFactoryClassIsAnInterface{
  if (!factoryClass.isInterface()) {
}
getSoleFactoryMethod{
  if (factoryClass.getMethods().length != 1) {
  return factoryClass.getMethods()[0];
}
getSoleAcceptableConstructorOfCreatedType{
  final Predicate<AnnotatedConstructor<T>> diConstructorPredicate=new Predicate<AnnotatedConstructor<T>>(){
    @Override public boolean apply(    @Nullable AnnotatedConstructor<T> input){
  Set<? extends AnnotatedConstructor<T>> allConstructors=createdType.getConstructors();
  Collection<? extends AnnotatedConstructor<T>> diConstructors=filter(allConstructors,diConstructorPredicate);
  if (diConstructors.size() > 1 || (allConstructors.size() > 1 && diConstructors.size() == 0)) {
  return Iterables.get(concat(diConstructors,allConstructors),0);
}
apply{
  return input.getJavaMember().getAnnotation(Inject.class) != null;
}
getConverter{
  if (constructorInjection) {
    return new MixedConstructorConverter(new QualifierAnnotationsFilter(beanManager),soleCreatedTypeConstructor,methodParameterIndexer);
 else {
    return new FactoryParameterOnlyConstructorConverter(soleCreatedTypeConstructor,methodParameterIndexer);
}
isConstructorInjection{
  return soleCreatedTypeConstructor.getAnnotation(Inject.class) != null;
}
